﻿
using System;

using Holdem.Interfaces.Configuration;
using Holdem.Interfaces.Service;

namespace Holdem.Model
{
	public abstract class HoldemModel
	{
		private IConfigurationService _configurationService;
		private IHoldemStatisticsService _statisticsService;
		private IGeneratorService _generatorService;

		protected HoldemModel(
			IHoldemStatisticsService statisticsService, 
			IConfigurationService configurationService,
			IGeneratorService generatorService)
		{
			if (generatorService == null)
				throw new ArgumentNullException("generatorService");
			if (statisticsService == null)
				throw new ArgumentNullException("statisticsService");
			if (configurationService == null)
				throw new ArgumentNullException("configurationService");

			_generatorService = generatorService;
			_statisticsService = statisticsService;
			_configurationService = configurationService;
		}
	}
}